package com.wectrls.common;


import com.wectrls.enums.RESPONSE_ENUM;
import lombok.Data;

/**
 * @author 陈建
 * @Package
 * @Description:通用返回数据结构(贫血模式，便于扩展)
 * @date 2018/5/23 10:55
 */
@Data
public class CommonVO<T> {

    private Integer code;

    private String message;

    private T data;

    public CommonVO() {
    }

    /**
     * 全参构造器
     * <p>
     * 建议使用RESPONSE_ENUM
     *
     * @param code
     * @param message
     * @param data
     */
    public CommonVO(Integer code, String message, T data) {
        this.code = code;
        this.message = message;
        this.data = data;
    }

    /**
     * 半参构造器，不携带返回数据
     * <p>
     * 建议使用RESPONSE_ENUM
     *
     * @param code
     * @param message
     */
    public CommonVO(Integer code, String message) {
        this.code = code;
        this.message = message;
    }

    /**
     * 默认成功携带消息和data的构造器
     * <p>
     * 默认code由RESPONSE_ENUM中success定义
     *
     * @param successMessage
     * @param data
     */
    public CommonVO(String successMessage, T data) {
        this.code = RESPONSE_ENUM.SUCCESS_200.getCode();
        this.message = successMessage;
        this.data = data;
    }

    /**
     * 默认成功，携带自定义数据的构造器
     * <p>
     * 默认code和message由RESPONSE_ENUM中的success定义
     *
     * @param successData
     */
    public CommonVO(T successData) {
        this.code = RESPONSE_ENUM.SUCCESS_200.getCode();
        this.message = RESPONSE_ENUM.SUCCESS_200.getMessage();
        this.data = successData;
    }

}
